In computer graphics rendering systems, applications use brushes to paint the foreground, background, or other properties of visual elements. A brush typically defines a color or pattern that the system can apply or repeat in an area that the system is painting. For example, if a user removes a window that was previously covering another window, the system may repaint the previously obscured window or a portion of the window that was obscured, using a currently active brush. Examples of brushes include those made of solid colors, various color gradients, as well as images or video (e.g., the VideoBrush provided by MICROSOFT™ WINDOWS™ Presentation Foundation (WPF) and MICROSOFT™ SILVERLIGHT™ 3).
With the rise of the Internet, Hypertext Markup Language (HTML) content has become more and more common both on and off the web. Many standalone applications render their user interfaces or content using HTML or other markup. Because of the sophistication of modern web applications and the potential danger to computer systems caused by running application code from unknown sources, many browsers now offer application sandboxes that restrict or control the types of content that can be displayed in a browser and the manner in which it is displayed. For example, MICROSOFT™ SILVERLIGHT™ allows application developers to perform actions in browsers (such as playing audiovisual content using a variety of codecs) that previously would not be possible due to technical limitations or security restrictions.
Although applications for such sandboxes often operate side by side with HTML that describes a web page, the two have not been able to mix. MICROSOFT™ SILVERLIGHT™ 3 added an out-of-browser feature that allows SILVERLIGHT™ applications to run as standalone desktop applications without a browser (the applications use the browser visual control but appear as desktop applications). There are times when an application developer wants to display HTML content in a SILVERLIGHT™ application that runs outside the browser. The application developer may also want to rotate or apply effects to the HTML content, but still enable the user to interact with the content. Today, this often leads application developers to choose other tools or platforms besides an application sandbox, reintroducing security issues.